[JavaScript] Unicode文字かどうかを判定する正規表現
小ネタです。JavaScriptで文字、数字、空白いずれかのUnicode文字かどうかを判定する正規表現をどう実装するのか調べました。
\p{L} が文字、\p{Z}が空白、\p{N}が数字です。最後のスラッシュの後に uフラグ が必要でした。他の言語で同様の処理を実装した時は uフラグ といったものはなかったのでハマりかけました。
const regexp = /^([\p{L}\p{Z}\p{N}]*)$/u; console.log(regexp.test("a")); // true console.log(regexp.test("1")); // true console.log(regexp.test("あ")); // true console.log(regexp.test(" ")); // true console.log(regexp.test(" ")); // true console.log(regexp.test("ー")); // true console.log(regexp.test("~")); // false
短いですが以上になります。